Feature: Register a callback to update the game

In order to have the game updated at the right interval We'll register a callback so I do not have to manage it

Scenario: Registering an update callback
Given a default gameclock
When an update callback is registered
Then the update timer will be scheduled for callback

Scenario: The gameclock should not call updated for all missed times after a long time between two ticks
# avoid spiral of death
Given a default gameclock
When a long time between two ticks occure
Then an upper limit is used for the time delta 

Scenario: Update is called with an dt argument
Given a default gameclock
When an update callback is called
Then the update arguments contain dt

Scenario: Update is called with an gametime argument
Given a default gameclock
When an update callback is called
Then the update arguments contain gametime

Scenario: Update is called with an fixed dt
Given a default gameclock
When an update callback is called
Then the dt is always the same

Scenario: The summed time of dt should stay in sync with the game time within a tolerance
Given a default gameclock
When an update callback is called
Then the sum of the dt should be the game time





#                +-- draw(s)
#                | +- tick
#                | |
# fast hardware |,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,.,,> total: 31 ticks
# slow hardware | , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . , . > total 31 ticks
# ideal ticks   |--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--.--> total: 31 ticks without frames
# time          |-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----> t
#               0
#






